package DAL.DTO;

public class AdresseDTO {
        private long idAdresse;
	private String rue;
	private String numero;
	private int codePostal;
	private String ville;
	private String pays;
        private ZoneGeographiqueDTO zone;
        
        //Constructeurs
	public AdresseDTO(  long idAdresse, String rue, String numero, 
                            int codePostal, String ville, String pays,
                            ZoneGeographiqueDTO zone) {
		super();
		setIdAdresse(idAdresse);
		setRue(rue);
                setNumero(numero);
		setCodePostal(codePostal);
		setVille(ville);
		setPays(pays);
                setZoneGeographique(zone);
        }
        
	public AdresseDTO(  String rue, String numero, 
                            int codePostal, String ville, String pays,
                            ZoneGeographiqueDTO zone) {
		super();
		setRue(rue);
                setNumero(numero);
		setCodePostal(codePostal);
		setVille(ville);
		setPays(pays);
                setZoneGeographique(zone);
        }
        
	//Setters
        public void setIdAdresse(long idAdresse) {
		UTIL.Util.checkPositive(idAdresse);
                this.idAdresse = idAdresse;
	}
	
        public void setRue(String rue) {
		UTIL.Util.checkString(rue);
                this.rue = rue;
	}
	
        public void setNumero(String numero) {
		UTIL.Util.checkString(numero);
                this.numero = numero;
	}
	
        public void setCodePostal(int codePostal) {
		if ((codePostal<1000)||(codePostal>9999))
                    throw new IllegalArgumentException();
                else this.codePostal = codePostal;
	}
        
	public void setVille(String ville) {
		UTIL.Util.checkString(ville);
		this.ville = ville;
	}

	public void setPays(String pays) {
		UTIL.Util.checkString(pays);
		this.pays = pays;
	}
        
        public void setZoneGeographique(ZoneGeographiqueDTO zone) {
                UTIL.Util.checkObject(zone);
                this.zone = zone;
        }

        //Getters 
	public long getIdAdresse() {
		return idAdresse;
	}
	
        public String getRue() {
		return rue;
	}

        public String getNumero() {
		return numero;
	}
	
        public int getCodePostal() {
		return codePostal;
	}
	
       	public String getVille() {
		return ville;
	}

       	public String getPays() {
		return pays;
	}
        
        public ZoneGeographiqueDTO getZoneGeographique() {
                return zone;
        }
}